package com.yw.unlimitedproxy;

import static com.yw.unlimitedproxy.utils.HandlerHeart.MAX_TIME;

import android.app.Application;
import android.content.IntentFilter;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;
import androidx.localbroadcastmanager.content.LocalBroadcastManager;

import com.yw.unlimitedproxy.model.VPNDataManager;
import com.yw.unlimitedproxy.ui.base.BaseActivity;
import com.yw.unlimitedproxy.utils.LogUtils;
import com.yw.unlimitedproxy.utils.OpenVPNUtils;
import com.yw.unlimitedproxy.utils.SPUtils;
import com.yw.unlimitedproxy.utils.TimeUtils;
import com.yw.unlimitedproxy.utils.Utils;

import java.io.File;
import java.sql.Time;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 *
 */
public class App extends Application {

    private static boolean isNewDay = false;    //新的一天，重置时间
    private static boolean isWaringTime = false;    //是否是警告时间
    private static boolean isTimeOver = false;  //是否是结束时间

    public static SPUtils spUtils;
    //app文件夹地址
    public static String dir;

    @Override
    public void onCreate() {
        super.onCreate();
        //初始化
        Utils.init(this);
        spUtils = new SPUtils();
        OpenVPNUtils.init();

        VPNDataManager.getInstance();
        OpenVPNUtils.getInstance();

        dir = getExternalFilesDir(null).getPath() + File.separator;

        //是否新的一天
        if (spUtils.isNewDay()) {
            isNewDay = true;
            spUtils.putString(SPUtils.NEW_DAY, TimeUtils.ymd.format(new Date()));
            spUtils.putInt(SPUtils.RUNNING_TIME, 0);
            spUtils.putBoolean(SPUtils.WARMING_TIME, false);
            spUtils.putBoolean(SPUtils.OVER_TIME, false);
        }


        //openVpn速度监听回调
//        OpenVPNUtils.getInstance().registerStatusListener(this);
        //注册广播以监听速度
//        LocalBroadcastManager.getInstance(this).registerReceiver(OpenVPNUtils.getInstance().getBroadcastReceiver(), new IntentFilter("connectionState"));
    }

    @Override
    public void onLowMemory() {
        super.onLowMemory();
        LogUtils.e("onLowMemory");
    }
//
//    @Override
//    public void changed(String duration, String lastPacketReceive, String byteIn, String byteOut) {
//        LogUtils.e("***********全局进程接收**********");
//        LogUtils.e("***********当前VPN是否正在运行 " + OpenVPNUtils.getInstance().isStart());
//        LogUtils.e("***********当前VPN开启时间    " + duration);
//        //当VPN关闭，vpn可能因为服务延迟发送错误的缓存数据，此方法不保险，还需要另行编写
//        if (!OpenVPNUtils.getInstance().isStart()) return;
//
//        for (OnTimeChangedListener listener : listeners) {
//            listener.onTimeChang(duration,byteIn,byteOut);
//        }
//    }

//    public static void registerTimeChangedListener(OnTimeChangedListener timeChangedListener) {
//        listeners.add(timeChangedListener);
//    }
//
//    public static void unregisterTimeChangedListener(OnTimeChangedListener timeChangedListener) {
//        listeners.remove(timeChangedListener);
//    }
//
//    public interface OnTimeChangedListener {
//        void onTimeChang(String remainingTime, String byteIn, String byteOut);
//    }

}
